package net.huashitong.ssydt.provider.exam.service;


import net.huashitong.ssydt.exam.entity.SsExamPaperQuestion;
import net.huashitong.ssydt.exam.entity.vo.ExamPaperQuestionInVO;
import net.huashitong.ssydt.exam.entity.vo.PaperQuestionOutVO;

import java.util.List;

/**
 * @author <a href="mailto:yhy23456@163.com">huiyang.yu</a>
 * @since 2017.09.04
 */
public interface SsExamPaperQuestionService {

    List<SsExamPaperQuestion> findByPaperId(Long paperId);

    /**
     * 后台加载试卷题目与选项列表
     *
     * @param paperId 试卷ID
     * @return 题目与选项列表
     */
    List<PaperQuestionOutVO> listPaperQuestionsAndOptions(Long paperId);

    /**
     * 新增试卷题目
     *
     * @param paperId               试卷ID
     * @param examPaperQuestionInVO 试卷题目信息
     */
    void appendPaperQuestion(Long paperId, ExamPaperQuestionInVO examPaperQuestionInVO);

    /**
     * 更新试卷题目顺序(按顺序传入试卷所有题目列表)
     *
     * @param paperId               试卷ID
     * @param examPaperQuestionInVO 试卷题目信息
     */
    void updatePaperQuestion(Long paperId, ExamPaperQuestionInVO examPaperQuestionInVO);

    /**
     * 删除试卷题目
     *
     * @param paperId               试卷ID
     * @param examPaperQuestionInVO 试卷题目信息
     */
    void deletePaperQuestion(Long paperId, ExamPaperQuestionInVO examPaperQuestionInVO);

    int insert(SsExamPaperQuestion record);

    /**
     * 批量保存操作
     *
     * @param ssExamPaperQuestionList
     */
    int batchInsert(List<SsExamPaperQuestion> ssExamPaperQuestionList);
}
